<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>javascript 阶段</title>
</head>
<body>


    <script>
        // 冒泡排序
        // 特点：
            // 数组中的数值进行两两比较，然后交换位置，减少循环的次数
        // 定义数组
        var arr = [80,90,60,40,20];
        // 记录数组的长度
        var len = arr.length;
        // 计数器变量
        var count = 0;
        // 循环数组（简单版）
        // for(var i =  0 ; i < len ; i ++){
        //     for(var j = 0 ; j < len - 1 ; j ++){
        //         count ++;
        //     }
        // }
        // 打印循环的次数
        // console.log("共循环了"+count+"次");// 20次

        
        // 循环数组(冒泡版)
        for(var i =  0 ; i < len ; i ++){
            // -i 表示减少执行重复比较的代码
            for(var j = 0 ; j < len - 1 - i ; j ++){
                // count ++;
                // 数据的两两比较
                if(arr[j] < arr[j + 1]){
                    // 暂存较小的值
                    var temp = arr[j];
                    // 把较大的值赋值给前者
                    arr[j] = arr[j + 1];
                    // 把暂存的值赋值给后者
                    arr[j + 1] = temp;
                }
            }
        }
        // 打印数组
        console.log(arr);// [90, 80, 60, 40, 20]
        // 打印循环的次数
        console.log("共循环了"+count+"次");// 10次

    </script>
</body>
</html>